/*
7-93 水仙花数
分数 20
作者 徐镜春
单位 浙江大学

水仙花数是指一个N位正整数（N≥3），它的每个位上的数字的N次幂之和等于它本身。例如：153=13+53+33。 本题要求编写程序,计算所有N位水仙花数。
输入格式:

输入在一行中给出一个正整数N（3≤N≤7）。 
输出格式:

按递增顺序输出所有N位水仙花数，每个数字占一行。
输入样例:

3

输出样例:

153
370
371
407
*/

#include <stdio.h>
#include <math.h>

int powers[10][10];

// 为了加快速度，初始化各个数的n次幂，按题目要求初始化到7次幂
void initPowers() {
    for (int i=1; i< 10; i++) {
        powers[i][1] = i;
        for (int j = 2; j <= 7; j++) {
            powers[i][j] = powers[i][j-1] * i;
        }
    }
}

int isDaffodil(int n, int p) {
    long long sum = 0;
    for (int t = n; t > 0; t /= 10) {
        int v = t % 10;
        // sum += pow(v, p);
        sum += powers[v][p];
    }
    return sum == n;
}

int main() {
    int range[10] = {1};
    for (int i = 1; i < 10; i++) {
        range[i] = range[i-1] * 10;
    }
    int n;
    scanf("%d", &n);
    initPowers();
    // printf("%d\n", range[n]);
    for (int i = range[n-1]; i < range[n]; i++) {
        if (isDaffodil(i, n)) {
            printf("%d\n", i);
        }
    }
    return 0;
}